<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://www.w3.org/2005/08/addressing" attributeFormDefault="unqualified" blockDefault="#all" elementFormDefault="qualified" targetNamespace="http://www.w3.org/2005/08/addressing" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="EndpointReference" type="tns:EndpointReferenceType" />
  <xs:complexType name="EndpointReferenceType">
    <xs:sequence>
      <xs:element name="Address" type="tns:AttributedURIType" />
      <xs:element minOccurs="0" ref="tns:ReferenceParameters" />
      <xs:element minOccurs="0" ref="tns:Metadata" />
      <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="lax" />
    </xs:sequence>
    <xs:anyAttribute namespace="##other" processContents="lax" />
  </xs:complexType>
  <xs:element name="ReferenceParameters" type="tns:ReferenceParametersType" />
  <xs:complexType name="ReferenceParametersType">
    <xs:sequence>
      <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
    </xs:sequence>
    <xs:anyAttribute namespace="##other" processContents="lax" />
  </xs:complexType>
  <xs:element name="Metadata" type="tns:MetadataType" />
  <xs:complexType name="MetadataType">
    <xs:sequence>
      <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
    </xs:sequence>
    <xs:anyAttribute namespace="##other" processContents="lax" />
  </xs:complexType>
  <xs:element name="MessageID" type="tns:AttributedURIType" />
  <xs:element name="RelatesTo" type="tns:RelatesToType" />
  <xs:complexType name="RelatesToType">
    <xs:simpleContent>
      <xs:extension base="xs:anyURI">
        <xs:attribute default="http://www.w3.org/2005/08/addressing/reply" name="RelationshipType" type="tns:RelationshipTypeOpenEnum" use="optional" />
        <xs:anyAttribute namespace="##other" processContents="lax" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:simpleType name="RelationshipTypeOpenEnum">
    <xs:union memberTypes="tns:RelationshipType xs:anyURI" />
  </xs:simpleType>
  <xs:simpleType name="RelationshipType">
    <xs:restriction base="xs:anyURI">
      <xs:enumeration value="http://www.w3.org/2005/08/addressing/reply" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="ReplyTo" type="tns:EndpointReferenceType" />
  <xs:element name="From" type="tns:EndpointReferenceType" />
  <xs:element name="FaultTo" type="tns:EndpointReferenceType" />
  <xs:element name="To">
    <xs:complexType>
      <xs:complexContent mixed="false">
        <xs:extension base="tns:AttributedURIType" />
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="Action">
    <xs:complexType>
      <xs:complexContent mixed="false">
        <xs:extension base="tns:AttributedURIType" />
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="AttributedURIType">
    <xs:simpleContent>
      <xs:extension base="xs:anyURI">
        <xs:anyAttribute namespace="##other" processContents="lax" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:attribute name="IsReferenceParameter" type="xs:boolean" />
  <xs:simpleType name="FaultCodesOpenEnumType">
    <xs:union memberTypes="tns:FaultCodesType xs:QName" />
  </xs:simpleType>
  <xs:simpleType name="FaultCodesType">
    <xs:restriction base="xs:QName">
      <xs:enumeration value="tns:InvalidAddressingHeader" />
      <xs:enumeration value="tns:InvalidAddress" />
      <xs:enumeration value="tns:InvalidEPR" />
      <xs:enumeration value="tns:InvalidCardinality" />
      <xs:enumeration value="tns:MissingAddressInEPR" />
      <xs:enumeration value="tns:DuplicateMessageID" />
      <xs:enumeration value="tns:ActionMismatch" />
      <xs:enumeration value="tns:MessageAddressingHeaderRequired" />
      <xs:enumeration value="tns:DestinationUnreachable" />
      <xs:enumeration value="tns:ActionNotSupported" />
      <xs:enumeration value="tns:EndpointUnavailable" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="RetryAfter" type="tns:AttributedUnsignedLongType" />
  <xs:complexType name="AttributedUnsignedLongType">
    <xs:simpleContent>
      <xs:extension base="xs:unsignedLong">
        <xs:anyAttribute namespace="##other" processContents="lax" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:element name="ProblemHeaderQName" type="tns:AttributedQNameType" />
  <xs:complexType name="AttributedQNameType">
    <xs:simpleContent>
      <xs:extension base="xs:QName">
        <xs:anyAttribute namespace="##other" processContents="lax" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:element name="ProblemIRI" type="tns:AttributedURIType" />
  <xs:element name="ProblemAction" type="tns:ProblemActionType" />
  <xs:complexType name="ProblemActionType">
    <xs:sequence>
      <xs:element minOccurs="0" ref="tns:Action" />
      <xs:element minOccurs="0" name="SoapAction" type="xs:anyURI" />
    </xs:sequence>
    <xs:anyAttribute namespace="##other" processContents="lax" />
  </xs:complexType>
</xs:schema>